"""
Spark
定义：Apache Spark是用于大规模数据（large-scala data）处理的统一（unified）分析引擎。

Spark是一款分布式的计算框架，用于调度成百上千的服务器集群，计算TB、PB乃至EB级别的海量数据。


构建PySpark执行环境入口对象
想要使用PySpark库完成数据处理，首先需要构建一个执行环境入口对象。Spark的功能都是从SparkContext对象作为开始。


==============================================================================================

PySpark的编程模型
SparkContext类对象，是PySpark编程中一切功能的入口。

PySpark的编程，主要分为如下三大步骤：
数据输入 -----> 数据处理计算 -----> 数据输出
==============================================================================================
数据输入：
通过 SparkContext 类对象的成员方法，完成数据的读取操作，读取后得到 RDD 类对象

==============================================================================================
数据处理计算：
通过 RDD 类对象的成员方法，完成各种数据计算需求

==============================================================================================
数据输出：
将处理完成后的 RDD 类对象，调用各种成员方法完成写出文件、转换为 list、写入数据库 等操作

==============================================================================================
PySpark的编程模型
- 源数据 -> RDD -> 结果数据
"""

# 导包
from pyspark import SparkConf, SparkContext

# 创建SparkConf类对象
conf = SparkConf().setMaster("local[*]").setAppName("test_spark_app")
# 这段话等同于：
# conf = SparkConf()
# conf.setMaster("local[*]")
# conf.setAppName("test_spark_app")

# 基于SparkConf类对象创建SparkContext对象
sc = SparkContext(conf=conf)
# 打印PySpark的运行版本
print(sc.version)
# 停止SparkContext对象的运行（停止PySpark程序）
sc.stop()
